package redis_m

import (
	"context"
	"errors"
	"fmt"
	"strconv"
)

func ValidationAuth(userId int64, token string) (err error) {
	ctx := context.Background()
	key := "user_" + strconv.FormatInt(userId, 10)
	rets, err :=Client.HMGet(ctx, "user_hash", key).Result()
	if err!=nil{
		fmt.Println(err.Error())
		return err
	}
	if !(len(rets)>0){
		return errors.New("服务端不存在该用户token， 请重新登入")
	}
	if tok := rets[0].(string); tok!=token{
		return errors.New("该用户已在其他电脑上登入， 请重新登入")
	}
	return nil
}

func SetAuthSinglePoint(userId int64, token string) (err error) {
	ctx := context.Background()
	fmt.Printf("%v, %T", strconv.FormatInt(userId, 10), strconv.FormatInt(userId, 10))
	key := "user_" + strconv.FormatInt(userId, 10)

	data := map[string]interface{}{
		key: token,
	}
	if err := Client.HMSet(ctx, "user_hash", data).Err(); err != nil {
		fmt.Println(err)
		err = errors.New(fmt.Sprintf("设置用户:%v token: %v 出错", key, token))
		return err
	}
	return nil
}

